//
//  NSObjCRuntime.swift
//  Documentation
//
//  Created by Toj on 2/7/23.
//

public var NSFoundationVersionNumber: Double

public var NSFoundationVersionNumber10_0: Double { get }
public var NSFoundationVersionNumber10_1: Double { get }
public var NSFoundationVersionNumber10_1_1: Double { get }
public var NSFoundationVersionNumber10_1_2: Double { get }
public var NSFoundationVersionNumber10_1_3: Double { get }
public var NSFoundationVersionNumber10_1_4: Double { get }
public var NSFoundationVersionNumber10_2: Double { get }
public var NSFoundationVersionNumber10_2_1: Double { get }
public var NSFoundationVersionNumber10_2_2: Double { get }
public var NSFoundationVersionNumber10_2_3: Double { get }
public var NSFoundationVersionNumber10_2_4: Double { get }
public var NSFoundationVersionNumber10_2_5: Double { get }
public var NSFoundationVersionNumber10_2_6: Double { get }
public var NSFoundationVersionNumber10_2_7: Double { get }
public var NSFoundationVersionNumber10_2_8: Double { get }
public var NSFoundationVersionNumber10_3: Double { get }
public var NSFoundationVersionNumber10_3_1: Double { get }
public var NSFoundationVersionNumber10_3_2: Double { get }
public var NSFoundationVersionNumber10_3_3: Double { get }
public var NSFoundationVersionNumber10_3_4: Double { get }
public var NSFoundationVersionNumber10_3_5: Double { get }
public var NSFoundationVersionNumber10_3_6: Double { get }
public var NSFoundationVersionNumber10_3_7: Double { get }
public var NSFoundationVersionNumber10_3_8: Double { get }
public var NSFoundationVersionNumber10_3_9: Double { get }
public var NSFoundationVersionNumber10_4: Double { get }
public var NSFoundationVersionNumber10_4_1: Double { get }
public var NSFoundationVersionNumber10_4_2: Double { get }
public var NSFoundationVersionNumber10_4_3: Double { get }
public var NSFoundationVersionNumber10_4_4_Intel: Double { get }
public var NSFoundationVersionNumber10_4_4_PowerPC: Double { get }
public var NSFoundationVersionNumber10_4_5: Double { get }
public var NSFoundationVersionNumber10_4_6: Double { get }
public var NSFoundationVersionNumber10_4_7: Double { get }
public var NSFoundationVersionNumber10_4_8: Double { get }
public var NSFoundationVersionNumber10_4_9: Double { get }
public var NSFoundationVersionNumber10_4_10: Double { get }
public var NSFoundationVersionNumber10_4_11: Double { get }
public var NSFoundationVersionNumber10_5: Double { get }
public var NSFoundationVersionNumber10_5_1: Double { get }
public var NSFoundationVersionNumber10_5_2: Double { get }
public var NSFoundationVersionNumber10_5_3: Double { get }
public var NSFoundationVersionNumber10_5_4: Double { get }
public var NSFoundationVersionNumber10_5_5: Double { get }
public var NSFoundationVersionNumber10_5_6: Double { get }
public var NSFoundationVersionNumber10_5_7: Double { get }
public var NSFoundationVersionNumber10_5_8: Double { get }
public var NSFoundationVersionNumber10_6: Double { get }
public var NSFoundationVersionNumber10_6_1: Double { get }
public var NSFoundationVersionNumber10_6_2: Double { get }
public var NSFoundationVersionNumber10_6_3: Double { get }
public var NSFoundationVersionNumber10_6_4: Double { get }
public var NSFoundationVersionNumber10_6_5: Double { get }
public var NSFoundationVersionNumber10_6_6: Double { get }
public var NSFoundationVersionNumber10_6_7: Double { get }
public var NSFoundationVersionNumber10_6_8: Double { get }
public var NSFoundationVersionNumber10_7: Double { get }
public var NSFoundationVersionNumber10_7_1: Double { get }
public var NSFoundationVersionNumber10_7_2: Double { get }
public var NSFoundationVersionNumber10_7_3: Double { get }
public var NSFoundationVersionNumber10_7_4: Double { get }
public var NSFoundationVersionNumber10_8: Double { get }
public var NSFoundationVersionNumber10_8_1: Double { get }
public var NSFoundationVersionNumber10_8_2: Double { get }
public var NSFoundationVersionNumber10_8_3: Double { get }
public var NSFoundationVersionNumber10_8_4: Double { get }
public var NSFoundationVersionNumber10_9: Int32 { get }
public var NSFoundationVersionNumber10_9_1: Int32 { get }
public var NSFoundationVersionNumber10_9_2: Double { get }
public var NSFoundationVersionNumber10_10: Double { get }
public var NSFoundationVersionNumber10_10_1: Double { get }
public var NSFoundationVersionNumber10_10_2: Double { get }
public var NSFoundationVersionNumber10_10_3: Double { get }
public var NSFoundationVersionNumber10_10_4: Double { get }
public var NSFoundationVersionNumber10_10_5: Int32 { get }
public var NSFoundationVersionNumber10_10_Max: Int32 { get }
public var NSFoundationVersionNumber10_11: Int32 { get }
public var NSFoundationVersionNumber10_11_1: Double { get }
public var NSFoundationVersionNumber10_11_2: Double { get }
public var NSFoundationVersionNumber10_11_3: Double { get }
public var NSFoundationVersionNumber10_11_4: Int32 { get }
public var NSFoundationVersionNumber10_11_Max: Int32 { get }

public var NSFoundationVersionNumber_iPhoneOS_2_0: Double { get }
public var NSFoundationVersionNumber_iPhoneOS_2_1: Double { get }
public var NSFoundationVersionNumber_iPhoneOS_2_2: Double { get }
public var NSFoundationVersionNumber_iPhoneOS_3_0: Double { get }
public var NSFoundationVersionNumber_iPhoneOS_3_1: Double { get }
public var NSFoundationVersionNumber_iPhoneOS_3_2: Double { get }
public var NSFoundationVersionNumber_iOS_4_0: Double { get }
public var NSFoundationVersionNumber_iOS_4_1: Double { get }
public var NSFoundationVersionNumber_iOS_4_2: Double { get }
public var NSFoundationVersionNumber_iOS_4_3: Double { get }
public var NSFoundationVersionNumber_iOS_5_0: Double { get }
public var NSFoundationVersionNumber_iOS_5_1: Double { get }
public var NSFoundationVersionNumber_iOS_6_0: Double { get }
public var NSFoundationVersionNumber_iOS_6_1: Double { get }
public var NSFoundationVersionNumber_iOS_7_0: Double { get }
public var NSFoundationVersionNumber_iOS_7_1: Double { get }
public var NSFoundationVersionNumber_iOS_8_0: Double { get }
public var NSFoundationVersionNumber_iOS_8_1: Double { get }
public var NSFoundationVersionNumber_iOS_8_2: Double { get }
public var NSFoundationVersionNumber_iOS_8_3: Double { get }
public var NSFoundationVersionNumber_iOS_8_4: Double { get }
public var NSFoundationVersionNumber_iOS_8_x_Max: Int32 { get }
public var NSFoundationVersionNumber_iOS_9_0: Double { get }
public var NSFoundationVersionNumber_iOS_9_1: Double { get }
public var NSFoundationVersionNumber_iOS_9_2: Double { get }
public var NSFoundationVersionNumber_iOS_9_3: Double { get }
public var NSFoundationVersionNumber_iOS_9_4: Double { get }
public var NSFoundationVersionNumber_iOS_9_x_Max: Int32 { get }

public struct NSExceptionName : Hashable, Equatable, RawRepresentable {

    public init(_ rawValue: String)

    public init(rawValue: String)
}
extension RunLoop {

    public struct Mode : Hashable, Equatable, RawRepresentable {

        public init(_ rawValue: String)

        public init(rawValue: String)
    }
}

public func NSStringFromSelector(_ aSelector: Selector) -> String
public func NSSelectorFromString(_ aSelectorName: String) -> Selector

public func NSStringFromClass(_ aClass: AnyClass) -> String
public func NSClassFromString(_ aClassName: String) -> AnyClass?

@available(iOS 2.0, *)
public func NSStringFromProtocol(_ proto: Protocol) -> String

@available(iOS 2.0, *)
public func NSProtocolFromString(_ namestr: String) -> Protocol?

public func NSGetSizeAndAlignment(_ typePtr: UnsafePointer<CChar>, _ sizep: UnsafeMutablePointer<Int>?, _ alignp: UnsafeMutablePointer<Int>?) -> UnsafePointer<CChar>

public func NSLogv(_ format: String, _ args: CVaListPointer)

/*
 These constants are used to indicate how items in a request are ordered, from the first one given in a method invocation or function call to the last (that is, left to right in code).
 
 Given the function:
   NSComparisonResult f(int a, int b)
 
 If:
    a < b   then return NSOrderedAscending. The left operand is smaller than the right operand.
    a > b   then return NSOrderedDescending. The left operand is greater than the right operand.
    a == b  then return NSOrderedSame. The operands are equal.
*/
@frozen public enum ComparisonResult : Int {

    /// 升序
    case orderedAscending = -1
    /// 相等
    case orderedSame = 0
    /// 降序
    case orderedDescending = 1
}

public typealias Comparator = (Any, Any) -> ComparisonResult

public struct NSEnumerationOptions : OptionSet {

    public init(rawValue: UInt)

    
    public static var concurrent: NSEnumerationOptions { get }

    public static var reverse: NSEnumerationOptions { get }
}

public struct NSSortOptions : OptionSet {

    public init(rawValue: UInt)

    
    public static var concurrent: NSSortOptions { get }

    public static var stable: NSSortOptions { get }
}

@available(iOS 8.0, *)
public enum QualityOfService : Int {

    
    case userInteractive = 33

    case userInitiated = 25

    case utility = 17

    case background = 9

    case `default` = -1
}

public let NSNotFound: Int
